"""
公共方法模块，习惯命名为utils
"""
from time import sleep
from selenium import webdriver


class DriverUtil:
    """浏览器对象管理类"""
    # 对象变量只需要在定义类内部使用，所以使用私有
    __driver = None

    @classmethod
    def get_driver(cls):
        # 为了防止在同一次测试过程中，调用获取浏览器对象方法时，
        # 都会创建一个新的浏览器对象，因此要先判断对象是否存在，不存在时在创建
        if cls.__driver is None:
            cls.__driver = webdriver.Chrome()
            cls.__driver.maximize_window()
            cls.__driver.implicitly_wait(10)
            cls.__driver.get("http://127.0.0.1")
        return cls.__driver

    @classmethod
    def quit_driver(cls):
        sleep(2)
        cls.__driver.quit()
        cls.__driver = None


if __name__ == '__main__':
    # my_driver = DriverUtil()
    # my_driver.get_driver()
    # my_driver.quit_driver()
    DriverUtil.get_driver()
    DriverUtil.quit_driver()
